package com.ctshk.rpc.booking.req.outside.other.save;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 站外综费预订信息
 * </p>
 *
 * @author 谢诗宏
 * @since 2021-03-09
 */
@Data
@ApiModel(value = "SupplierOutsideOrderOtherReq对象", description = "站外综费预订信息")
public class SupplierOutsideOrderOtherReq implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ID")
    private Long id;

    @ApiModelProperty(value = "所属订单ID")
    private Long orderId;

    @NotBlank(message = "服务类型不能为空")
    @ApiModelProperty(value = "服务类型JSON", required = true)
    private String serviceTypeJson;

    @NotBlank(message = "服务类型二级不能为空")
    @ApiModelProperty(value = "服务类型二级JSON", required = true)
    private String serviceTypeLv2Json;

    @NotBlank(message = "项目名称")
    @ApiModelProperty(value = "项目名称", required = true)
    private String name;

    @NotBlank(message = "项目需求描述")
    @ApiModelProperty(value = "项目需求描述", required = true)
    private String description;

    @NotNull(message = "单价")
    @ApiModelProperty(value = "单价", required = true)
    private BigDecimal singlePrice;

    @NotNull(message = "单位")
    @ApiModelProperty(value = "单位", required = true)
    private Integer unit;

    @NotNull(message = "数量")
    @ApiModelProperty(value = "数量", required = true)
    private Integer num;

    @NotNull(message = "小计")
    @ApiModelProperty(value = "小计", required = true)
    private BigDecimal totalPrice;

    @ApiModelProperty(value = "成人数")
    private Integer adultNum;

    @ApiModelProperty(value = "小童数")
    private Integer childNum;

    @ApiModelProperty(value = "婴儿")
    private Integer babyNum;

    @ApiModelProperty(value = "导领数量")
    private Integer guiderNum;

    @ApiModelProperty(value = "共计人数")
    private Integer totalPeople;

    @ApiModelProperty(value = "说明")
    private String remark;

    @Valid
    @ApiModelProperty(value = "综费旅客列表")
    private List<SupplierOutsideOrderOtherTouristReq> supplierOutsideOrderOtherTouristReqList;

}
